Google App Engineは割と頻繁にSDKの更新があり、Eclipse用のプラグインの更新も多い。ところがGAEのSDKをアップデートした場合にはエラーが発生することが多いようである。
ここでは、私が利用時に直面したエラーとその対応方法を残しておく。
■ Eclipse上ではエラーが発生しないが、GAE上でエラーが発生する場合
Eclipse上ではエラーが発生しないがGAE上ではエラーが発生する場合、Developer Console上でエラーログが確認できます。「すべてのプロジェクトの管理」から該当PJ名を選択し、「App Engine」をクリック、「サーバーエラー」欄からエラーが発生しているURIを選択するとログが確認できます。
↓
↓
上記例では「Unsupported major.minor version 52.0」というエラーで、war・クラスファイルがJDK1.8(version52.0)でコンパイルされており、Google App Engine上ではサポートしていないという内容。Eclipseをstart.batから起動していない(環境変数の設定がおかしい)か、EclipseのJDK設定がうまくできていないので再度設定するとよい。
■ 前回のアプリケーションが正常終了できていなかった場合
Eclipseでアプリケーションの終了がうまくできていない場合、次回起動時に以下のようなメッセージ「The port 8888 appers to be in use(perhaps by another launch), do you still want to continue with this launch?」が表示されることがある。これはポート8888が使用中であるメッセージである。
このメッセージが表示された場合は以下の方法でポートを閉じる必要がある。
- コマンド・プロンプトを起動
- 「netstat -nao」コマンドを実行。「TCP 127.0.0.1:8888 0.0.0.0:0 LISTENING ○○」という行を見つける
- 「taskkill /f /pid ○○ 」コマンドを実行。○○はnetstatコマンドの実行結果
- 「成功: PID ○○ のプロセスは強制終了されました。」が表示されれば成功
■ GAE SDKアップデート時に『javax.*』クラスがインポートエラーとなる。エラー『The selected App Engine SDK is not valid』が発生する
【症状】
- SDKをアップデートした途端、javax.servlet等のjavax.*クラスについてエラー『型を解決できません』が発生する。
- 新規プロジェクト作成時、エラー『The selected App Engine SDK is not valid』が発生して新規プロジェクトが作成できない。
【原因】
GAE SDKの更新により旧バージョンのSDKが削除されたにも関わらず、プロジェクトに関連付けられたSDKバージョンが古いままのためライブラリの参照などができなくなっている。
【対処方法】
使用するGAE SDKバージョンを指定する。既存プロジェクトのGAE SDKバージョンの変更方法は以下のとおり。
1.プロジェクト名を右クリックし、表示されるポップアップ・メニューから「Google - Appエンジン設定」を選択。「AppエンジンSDK」にて「指定したSDKを使用」にチェックを入れ、アップデート後のSDKを選択する。
新規プロジェクト作成時も同様で「Google App エンジンを使用する」の選択肢を「指定したSDKを使用」にして、アップデート後のGAE SDKバージョンを指定する。